package com.oceansoft.mobile.econsole.modules.api.service;

import com.oceansoft.mobile.econsole.modules.api.entity.DriverInfo;
import com.oceansoft.mobile.econsole.modules.api.entity.VehicleInfo;
import com.oceansoft.mobile.econsole.modules.base.entity.Result;
import com.oceansoft.mobile.econsole.modules.jlapi.entity.ApiMessage;
import com.oceansoft.mobile.econsole.modules.jlapi.entity.OffenseVehicleSearchCondition;

import javax.servlet.http.HttpServletRequest;
import java.io.IOException;

/**
 * 平台查询服务
 *
 * @author: chenw
 * @time: 2014-7-23 0023 上午 10:45
 */
public interface IQueryService {

    /**
     * 查询车辆违章信息
     *
     * @param vehicleInfo
     * @return
     */
    Result queryTrafficeViolation(VehicleInfo vehicleInfo);

    /**
     * 重名查询
     *
     * @param request 待查询名称
     * @return Result
     */
    Result loadRepetitiveName(HttpServletRequest request);

    /**
     * 重名查询
     *
     * @param request 待查询名称
     * @return Result
     */
    Result ytLoadRepetitiveName(HttpServletRequest request) throws IOException;

    /**
     * 重名查询
     * 外部调用
     *
     * @param request
     * @return
     */
    Result loadNameRepeatQuery(HttpServletRequest request);

    Result loadWtCarTypeList(String typeId);

    /**
     * 机动车违法查询列表
     *
     * @param request
     * @return
     */
    Result loadVehicleIllegalList(HttpServletRequest request);

    /**
     * 机动车违法查询列表()
     *
     * @param vehicleSearch
     * @return
     */
    Result loadVehicleIllegalLists(OffenseVehicleSearchCondition vehicleSearch);

    /**
     * 机动车违法查询列表()
     *
     * @param vehicleSearch
     * @return
     */
    Result ytVehicleIllegalLists(OffenseVehicleSearchCondition vehicleSearch) throws IOException ;

    /**
     * 机动车违法查询列表
     * 外部调用
     *
     * @param request
     * @return
     */
    Result loadcarIllegalList(HttpServletRequest request);
    /**
     *车辆查询
     *
     * @param request
     * @return
     */
    Result loadVehicleclcxLists(HttpServletRequest request);
    /**
     * 驾驶证记分查询H5
     *
     * @param request
     * @return
     */
    Result loadLicensePointsInfo(HttpServletRequest request);

    /**
     * 驾驶证记分查询
     *
     * @param request
     * @return
     */
    Result ytLicensePointsInfo(HttpServletRequest request)throws IOException;
    /**
     * 驾驶证记分查询
     * 外部调用
     *
     * @param request
     * @return
     */
    Result loadDriverPointsInfo(HttpServletRequest request);

    /**
     * 驾驶员信息查询
     *
     * @param driverInfo 驾驶员信息
     * @return Result
     */
    Result queryDriverInfo(DriverInfo driverInfo);

    /**
     * 案件办理进度查询
     *
     * @param caseId 案件编号
     * @return Result
     */
    Result loadCaseProgress(String caseId);

    /**
     * 天气预报信息查询
     *
     * @return Result
     */
    Result loadWeatherForecastInfo();

    /**
     * 根据监控点ID获取监控点照片
     */
    Result loadMonitorPicture(String locatHostIP, String equipmentid);

    /**
     * 加载全部监控点信息
     *
     * @return Result
     */
    Result loadMonitorsInfo();

    /**
     * 根据ProjectGuid获取通行证二维码
     */
    Result loadQRImg(String localHostIP, String projectguid);

    /**
     * 根据ProjectGuid获取通行证
     */
    Result loadPassportImg(String localHostIP, String projectguid);

    /**
     * 根据监控点名称模糊查询监控探头列表
     *
     * @param address 路口名称
     * @return Result
     */
    Result loadMonitorsByAddress(String address);

    Result loadRoadImages(String localHostIP, int pageSize, int pageIndex);

    Result queryIdNumCheck(HttpServletRequest request);

    Result queryVehicleCheck(HttpServletRequest request);

    Object loadResultGain(String sn, String action);

    ApiMessage getApiMessage(String pushType, String pushId);

    // 姓名、身份证号 实名认证
    Result queryIdNumCheck(String guid,String xm,String sfzh);

    Result queryResultGain(String action,String command);

    /**
     * 社区民警查询
     *
     * @param request 待查询条件
     * @return Result
     */
    Result loadPolice(HttpServletRequest request);

    /**
     * 社区民警详情查询
     *
     * @param id 待查询条件
     * @return Result
     */
    Result loadPolicexq(String id);

    Result sendMessage(String telNum, String content);
}
